SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO
CREATE PROCEDURE [dbo].[SP_TASALD_CORP_Q23]    
/*---------------------------------------------------------------------*/    
/*----- Empresa          : OFISIS S.A.                            -----*/    
/*----- Cliente          : OFISIS S.A.                            -----*/    
/*----- Sistema          : Contabilidad                           -----*/    
/*----- Modulo           : Empresa                                -----*/    
/*----- Programa         : Mayorizacion                           -----*/    
/*----- Nombre           : SP_TASALD_CORP_Q23                   -----*/     
/*----- Script           : TASALD_CORP                            -----*/    
/*----- Desarrollado     : Mara Laura Uribe                       -----*/    
/*----- Fecha            : 24/05/1999                             -----*/    
/*----- Base de Datos    : MS SQL Server                          -----*/    
/*----- Version BD       : 6.5                                    -----*/    
/*----- Invoca a SP      :                                        -----*/    
/*---------------------------------------------------------------------*/    
/*---------------------------------------------------------------------*/    
/*----- Modificado 1 por : Yessica Morales Taipe                  -----*/    
/*----- Fecha Modifica   : 26/12/2000                             -----*/    
/*----- Detalle Modifica : Migraci?n a SQL 7.0                   -----*/    
/*---------------------------------------------------------------------*/    
/*---------------------------------------------------------------------*/    
/*----- Modificado 2 por : percy garcia                           -----*/    
/*----- Fecha Modifica   : 05/06/2004                             -----*/    
/*----- Detalle Modifica : usuario creacion y modif               -----*/    
/*---------------------------------------------------------------------*/    
/*---------------------------------------------------------------------*/    
/*----- Comentarios      : Inserta saldos                         -----*/    
/*---------------------------------------------------------------------*/    
/*---------------------------------------------------------------------*/    
/*----- Drop Proc SP_TASALD_CORP_Q23                              -----*/    
/*----- Grant all On SP_TASALD_CORP_Q23 To PUBLIC           -----*/    
/*----- SP_TASALD_CORP_Q23 2003, 0, 2003, 5                                -----*/    
/*---------------------------------------------------------------------*/    
@ISCO_USUA          TD_VC_008,
@IDFE_USUA          TD_DT_001,
@INNU_ANNO_0001    TD_IN_004_ANNO,    
@INNU_MESE_0001    TD_IN_002_MESE,    
@INNU_ANNO_0002    TD_IN_004_ANNO,    
@INNU_MESE_0002    TD_IN_002_MESE    
    
As    
Declare    
  @VNNV_INFO_CNTA         TD_IN_001,    
  @VSNV_QUIE_CNTA         TD_VC_020,     
  @VNCA_INIC              int,    
  @VNCA_LONG              int,    
  @VNCA_LONG_AUXI         int,    
  @VNNV_AUXI              int,    
  @VNNU_FINA              int    
    
 Begin    
  -- Selecciona Datos de Nivel Informacion y NUmeros de Quiebre    
  Select @VNNV_INFO_CNTA = NV_INFO_CNTA,    
  @VSNV_QUIE_CNTA = NV_QUIE_CNTA     
  From   TMCORP    
    
  SELECT @VNCA_LONG = Datalength(rtrim(@VSNV_QUIE_CNTA))    
  SELECT @VNNU_FINA = 1    
    
  While @VNNU_FINA = 1    
   Begin    
    
    SELECT @VNCA_INIC = @VNCA_LONG - 2    
    SELECT @VNCA_LONG = @VNCA_LONG - 2    
    SELECT @VNNV_AUXI = CONVERT(INT, (Substring(@VSNV_QUIE_CNTA,@VNCA_INIC,1)))    

    -- El Nivel Detalle ya existe y si es cero no se hace nada    
    If (@VNNV_AUXI < @VNNV_INFO_CNTA) And (@VNNV_AUXI > 0)    
     Begin    
       -- Inserta en la Tabla de Saldos    
       Insert into TASALD_CORP( NU_ANNO, NU_MESE , CO_CNTA_CORP, TI_AUXI_CORP, CO_AUXI_CORP,    
       IM_CARG_MESE, IM_ABON_MESE, PR_DATO, CO_USUA_MODI,FE_USUA_MODI, CO_USUA_CREA, FE_USUA_CREA)    
       Select @INNU_ANNO_0001, NU_MESE,  Substring(CO_CNTA_CORP,1,@VNNV_AUXI), NULL, NULL,    
       Isnull(Sum(Isnull(IM_CARG_MESE, 0)), 0), Isnull(Sum(Isnull(IM_ABON_MESE, 0)), 0), Max(PR_DATO), @ISCO_USUA , @IDFE_USUA, @ISCO_USUA, @IDFE_USUA
       From TASALD_CORP    
       Where NU_ANNO = @INNU_ANNO_0001    
       And   NU_MESE >= @INNU_MESE_0001    
       And   NU_MESE <= @INNU_MESE_0002    
       And   Datalength(CO_CNTA_CORP) = @VNNV_INFO_CNTA    
       And   TI_AUXI_CORP Is Null     
       And   CO_AUXI_CORP Is Null     
       Group By NU_MESE, Substring(CO_CNTA_CORP,1,@VNNV_AUXI)    
     End    
    -- Para salir del Loop    
    If @VNCA_INIC <= 0  SELECT @VNNU_FINA = 0    
   End    
 End    
    
/*------------------------ Fin ----------------------*/  



GO
